package cn.yunhe.insurance.service;



import cn.yunhe.insurance.entity.Case;
import cn.yunhe.insurance.entity.PayBack;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface PayBackService {
    /**
     * 新增：新增一条赔付记录
     * 备注： pass
     *
     * @param payBack
     * @return
     */
    boolean addPayRecord(PayBack payBack);

    /**
     * 删除: 根据赔付 id 删除
     *
     * @param payBack 主键uuid
     * @return
     */
    boolean deletePayRecordById(PayBack payBack);

    /**
     * 批量删除
     *
     * @param uuidList
     * @return
     */
    Boolean batchDeletePayRecord(List<String> uuidList);

    /**
     * 修改：更新赔付的状态
     *
     * @param payBack 状态编码
     * @return
     */
    boolean updatePayBackStatus(PayBack payBack);

    /**
     * 无条件查询全部赔付记录
     *
     * @return
     */

    List<PayBack> queryAllPayList();

    /**
     * 查询：根据（指定条件模糊）分页查询全部赔付记录列表
     *
     * @param maps
     * @return
     */
    PageInfo<PayBack> queryPayBackListByLike(Map<String, Object> maps);

    /**
     * 根据赔付状态查询，下面两种查询方法的封装
     *
     * @param maps
     * @return
     */
    PageInfo<PayBack> queryPayRecordByStatus(Map<String, Object> maps);

    /**
     * 查询没有赔付的列表
     *
     * @param maps
     * @return
     */
    PageInfo<PayBack> queryUnPayRecord(Map<String, Object> maps);

    /**
     * 查询已赔付的列表
     *
     * @param maps
     * @return
     */
    PageInfo<PayBack> queryIsPayRecord(Map<String, Object> maps);

    /**
     * 统计查询记录的条数
     * 备注：pass
     *
     * @param maps
     * @return
     */
    Integer countPayRecordNum(Map<String, Object> maps);

    /**
     * 根据报案编号 查询相关信息
     * 备注：pass
     *
     * @param caseId
     * @return
     */
    Case queryCaseByCaseId(String caseId);

    /**
     * 查询通过审核未结算的案件
     *
     * @param maps
     * @return
     */

    PageInfo<Case> queryCaseListUnPay(Map<String, Object> maps);

    /**
     * 结算后修改案件状态
     *
     * @param cases
     * @return
     */
    Boolean updateCaseState(Case cases);

    /**
     * 增加出险次数
     * @param carNo
     * @return
     */
    Boolean updateRiskNum(String carNo);
}
